11981
111
이 질문에 이미 답변이 있습니다.
Python에서 문자열 반전
(29 답변)
4 년 전에 문을 닫았습니다.
문자열을 반전시키고 아래 코드를 사용하려고하는데 결과 반전 목록 값은 None입니다.
코드:
str_a = '이것이 흔들립니다'
rev_word = str_a.split ()
rev_word = rev_word.reverse ()
rev_word = ''.join (rev_word)
TypeError를 반환합니다. 왜? 
.reverse ()는 None을 반환합니다. 따라서 변수에 할당해서는 안됩니다.
대신 사용 :
stra = '이것은 문자열입니다'
revword = stra.split ()
revword.reverse ()
revword = ''. join (revword)
출력을 볼 수 있도록 IDEOne에서 코드를 실행했습니다. (또한 출력이 stringaisThis임을 확인하십시오. 대신 공백과 함께 ''.join (revword)를 사용할 수 있습니다.)
또한 제공 한 방법은 텍스트가 아닌 단어 만 반전합니다. @ ron.rothman은 전체 문자열을 뒤집는 방법을 자세히 설명하는 링크를 제공했습니다.
|
이것은 문자열을 뒤집는 개인적으로 가장 좋아하는 방법입니다.
stra = "이것은 문자열입니다"
revword = stra [::-1]
print (revword) # "한 번에 표시
또는 단어 순서를 바꾸려면 :
revword = "".join (stra.split () [::-1])
print (revword) # "문자열 a는 이것입니다"
:)
|
문자열에 대한 다양한 반전 :
instring = '이것은 문자열입니다'
reversedstring = instring [::-1]
reversedstring 인쇄 # gnirts a sihT
wordsreversed = ''.join (word [::-1] for word instring.split ())
인쇄 단어 반전 # sihT si a gnirts
revwordorder = ''.join (instring.split () [::-1]의 단어에 대한 단어)
print revwordorder # string a is This
revwordandorder = ''.join (word [::-1] for word instring.split () [::-1])
print revwordandorder # gnirts a sihT
|
객체에 [] .reverse ()와 같은 메소드가있을 때 나중에 참조 할 수 있도록 일반적으로 객체에 대해 해당 작업을 수행합니다 (즉, 목록이 정렬되고 아무것도 반환하지 않음, None). 객체를 반환하고 값 (예 : 정렬 된 목록)을 반환합니다.
|
>>> s = '이것은 문자열입니다'
>>> s [::-1]
'한숨을 쉬다'
>>> ''.join (reversed (s))
'한숨을 쉬다'
|
for 루프는 끝 (마지막 문자)에서 시작 (첫 글자)까지 문자열을 반복합니다.
>>> s = '이것도 시도해 볼 수 있습니다 :]'
>>> rev = ''
>>> 범위 (len (s)-1, -1, -1)에있는 i의 경우 :
... rev + = s [i]
>>> rev
'] : yrt nac uoY를 입력하세요.'
|
의견 및 기타 답변을 기반으로 :
str_a = '이것은 문자열입니다'
rev_word = ''.join (reversed (str_a.split ()))
메서드 체이닝은 결국 파이썬에서 작동합니다 ...
|
목록 반전은 여러 가지 방법을 사용하여 수행 할 수 있습니다. 이전 답변에서 언급했듯이 두 개는 매우 두드러집니다. 하나는 reverse () 함수이고 두 개는 슬라이싱 기능입니다. 나는 우리가 선호해야 할 것에 대한 통찰력을 제공하고 있습니다.
파이썬 목록의 반전을 위해 항상 reverse () 함수를 사용해야합니다. 두 가지 이유, 하나는 내부 반전이고 두 가지는 다른 것보다 빠릅니다.
내 대답을 뒷받침하는 몇 가지 수치가 있습니다.
[15]에서 : len (l)
출력 [15] : 1000
[16]에서 : % timeit -n1 l.reverse ()
루프 1 개, 최고 3 : 7.87 µs / 루프
[17]에서 : % timeit -n1 l [::-1]
루프 1 개, 최고 3 : 루프 당 10 µs
1000 정수 목록의 경우 reverse () 함수는 슬라이싱에 비해 더 나은 성능을 보였습니다.
|
찾고있는 답변이 아닙니까? python 태그가 붙은 다른 질문을 찾아 보거나 직접 질문하십시오.